home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / FPCDOCS.LZH / VIDEO.SEQ < prev    next >
Text File  |  1988-08-05  |  2KB  |  53 lines

  1. \ VIDEO.SEQ     Direct VIDEO Screen output              by Tom Zimmer
  2.  
  3. FILES DEFINITIONS
  4.  
  5. VARIABLE VIDEO.SEQ
  6.  
  7. FORTH DEFINITIONS
  8.  
  9. DECIMAL
  10.  
  11. VARIABLE ATTRIB   7 ATTRIB !-T          \ display attribute value
  12. VARIABLE VIDEO-SEG                      \ Segment of display
  13. VARIABLE TYPESEG        \ video type segment, the segment we are typing from.
  14. VARIABLE VMODE-VAR      \ Video mode save variable
  15. VARIABLE BLANKING       \ Are we blanking during screen drawing?
  16.  
  17. CODE ?VMODE     ( --- N1 )              \ Get the video mode from DOS
  18.                 MOV AH, # $0F
  19.                 INT $10
  20.                 SUB AH, AH
  21.                 MOV VMODE-VAR AX        \ Save video mode in VMODE-VAR
  22.                 1PUSH           END-CODE
  23.  
  24. CODE VMODE.OK   ( --- )
  25.                 MOV AH, # $0F
  26.                 INT $10
  27.                 CMP AL, # 7
  28.              0= IF      NEXT
  29.                 THEN
  30.                 CMP AL, # 3             \ If less than mode 3
  31.             0<> IF
  32.                         MOV AH, # 0
  33.                         MOV AL, # 3     \ Set mode 3
  34.                         INT $10
  35.                 THEN
  36.                 MOV AH, # $0F
  37.                 INT $10
  38.                 SUB AH, AH
  39.                 MOV VMODE-VAR AX        \ Save video mode in VMODE-VAR
  40.                 NEXT            END-CODE
  41.  
  42.  
  43. DEFER INITMONO  ' NOOP IS INITMONO      \ INITIALIZATION VECTOR AVAILABLE
  44. DEFER INITCOLOR ' NOOP IS INITCOLOR     \ FOR MONOCHROME AND COLOR
  45.  
  46. : VMODE.SET     ( --- )
  47.                 ?VMODE 7 =
  48.                 IF      $0B000   INITMONO
  49.                 ELSE    VMODE.OK
  50.                         $0B800   INITCOLOR
  51.                 THEN    VIDEO-SEG ! ;
  52.  
  53.